/*
 * Copyright 2020-2025 the original author or authors.
 * You cannot use this file unless authorized by the author.
 */
package org.ipig.model.proc;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.ToString;
import org.ipig.model.FieldMapperConf;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * FlowProcessorConf
 *
 * @author <a href="mailto:comchnts@163.com">chinats</a>
 * @version $$Id: FlowProcessorConf.java 3 2020-01-21 09:36:33Z ts <comchnts@163.com> $$
 * @since 1.0
 */
@Data
@ToString
public class FlowProcessorConf implements Serializable {
    //唯一编码
    private String code;
    //标题说明
    private String title;
    //处理器类
    private String processorClass;
    // 字段映射器Conf, key统一配置大写
    private Set<String> fieldMapperSet = new HashSet<>();
    // 字段映射器编码
    @JSONField(serialize = false, deserialize = false)
    private Map<String, FieldMapperConf> fieldMapperMap = new HashMap<String, FieldMapperConf>();
    // 业务维度与度量指标项
    private List<FlowDimMetricsConf> dimMetricList = new ArrayList<>();
    //调试标识 默认关闭
    private Boolean debugEnable = Boolean.valueOf(false);
    // 其它属性
    private Map<String, Object> props = new HashMap<String, Object>();
}